package top.whysu.edevice.dao.system;

import org.apache.ibatis.annotations.Param;
import top.whysu.edevice.po.system.DataDictionaryPO;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * 数据字典数据库操作接口类
 */
public interface DataDictionaryDao {

    /**
     * 查询一个
     *
     * @param params 查询条件
     * @return 对象
     */
    DataDictionaryPO selectOne(Map<String, Object> params);

    /**
     * 根据ID查询
     *
     * @param id 主键ID
     * @return 对象
     */
    DataDictionaryPO selectById(BigDecimal id);

    /**
     * 查询集合
     *
     * @param params 查询条件
     * @return 集合
     */
    List<DataDictionaryPO> selectList(Map<String, Object> params);

    /**
     * 添加
     *
     * @param dataDictionaryPO 对象
     * @return 影响行数
     */
    int insert(DataDictionaryPO dataDictionaryPO);

    /**
     * 更新
     *
     * @param dataDictionaryPO 对象
     * @return 影响行数
     */
    int update(DataDictionaryPO dataDictionaryPO);

    /**
     * 删除
     * @param id 主键
     * @return 影响行数
     */
    int delete(BigDecimal id);

    /**
     * 查询标签名
     *
     * @param dataType 类型标识{@link top.whysu.edevice.constant.DataType}
     * @param value    值
     * @return 标签名
     */
    String selectLabel(@Param("dataType") Integer dataType, @Param("value") Integer value);

    /**
     * 查询字典值
     *
     * @param dataType 类型标识{@link top.whysu.edevice.constant.DataType}
     * @param label    标签名
     * @return 值
     */
    Integer selectValue(@Param("dataType") Integer dataType, @Param("label") String label);
}
